package com.idealighter.game.roomcard.games.mustniuniu.convert;

import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuAdvanceOption;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuBankerChip;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuBetOption;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuCallBankerMultiple;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuCardMultiple;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuCardSpecialMultiple;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuExtrBetOption;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuRound;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuSeatDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.CommonMustNiuNiuCfg.MustNiuNiuStartOption;
import com.idealighter.game.roomcard.games.mustniuniu.dto.RoomInfo;
import com.idealighter.game.roomcard.games.mustniuniu.dto.RoomInfo.RoomCfgDto;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuAdvanceOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuBankerChipPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuBetOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCallBankerMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCardMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCardSpecialMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuExtrBetOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuRoundPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuSeatPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuStartOptionPo;
import com.idealighter.game.roomcard.struct.roomcfg.value.MustNiuNiuRoomCardRoomCfgValue;
import java.util.List;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

@Mapper
public abstract class ResRoomInfoMsgConvert {
  public static final ResRoomInfoMsgConvert INSTANCE =
      Mappers.getMapper(ResRoomInfoMsgConvert.class);


  @Mapping(target = "roomId", source = "roomId")
  @Mapping(target = "ownerId", source = "ownerId")
  @Mapping(target = "superId", source = "superId")
  @Mapping(target = "ownerName", source = "ownerName")
  @Mapping(target = "groupId", source = "groupId")
  @Mapping(target = "groupName", source = "groupName")
  @Mapping(target = "gameId", source = "gameId")
  @Mapping(target = "gameName", source = "gameName")
  @Mapping(target = "payBy", source = "payBy")
  @Mapping(target = "price", source = "price")
  @Mapping(target = "roomCfg", source = "roomCfg")
  @Mapping(target = "curRound", source = "curRound")
  @Mapping(target = "rounds", source = "rounds")
  @Mapping(target = "createTime", source = "createTime")
  public abstract RoomInfo po2dto(Long roomId, Long ownerId, Long superId, String ownerName,
      Integer groupId, String groupName, Integer gameId, String gameName, Integer payBy,
      Long price, MustNiuNiuRoomCardRoomCfgValue roomCfg, Integer curRound, Integer rounds,
      Long createTime);

  public abstract RoomCfgDto po2dto(MustNiuNiuRoomCardRoomCfgValue po);

  //
  public abstract MustNiuNiuBetOption po2dto(MustNiuNiuBetOptionPo po);

  public abstract MustNiuNiuRound po2dto(MustNiuNiuRoundPo po);

  public abstract MustNiuNiuStartOption po2dto(MustNiuNiuStartOptionPo po);

  public abstract MustNiuNiuSeatDto po2dto(MustNiuNiuSeatPo po);

  public abstract MustNiuNiuExtrBetOption po2dto(MustNiuNiuExtrBetOptionPo po);

  public abstract MustNiuNiuCardMultiple po2dto(MustNiuNiuCardMultiplePo po);

  public abstract MustNiuNiuCardSpecialMultiple po2dto(MustNiuNiuCardSpecialMultiplePo po);

  public abstract MustNiuNiuAdvanceOption po2dto(MustNiuNiuAdvanceOptionPo po);

  public abstract MustNiuNiuBankerChip po2dto(MustNiuNiuBankerChipPo po);

  public abstract MustNiuNiuCallBankerMultiple po2dto(MustNiuNiuCallBankerMultiplePo po);

  public abstract List<MustNiuNiuCardSpecialMultiple> po2specialMultipleDto(
      List<MustNiuNiuCardSpecialMultiplePo> po);

  public abstract List<MustNiuNiuAdvanceOption> po2advanceOptionDto(
      List<MustNiuNiuCardSpecialMultiplePo> po);
}
